Data is stored in a variety of types of storage mechanisms, such as a database and a file server. Each storage mechanism typically has its own means of access. For example, the SQL protocol is typically used to perform operations on a database, and the NFS protocol is typically used to perform operations on a file system. The SQL protocol is an ANSI standard for accessing and manipulating data stored in a database. The NFS protocol is a distributed file system protocol that supports the performance of file operations on files across a network. NFS is a well-known standard for sharing files between UNIX hosts. In the NFS protocol, file system operations are performed on files using a filehandle, which is an identifier that identifies a particular file. The current version of NFS, version 4, which is specified in RFC 3010, supports additional functionality over version 3, such as enhancements to security and to the performance of stateful operations.
Currently, database management systems do not support accessing a database using the NFS protocol. Thus, when a user wishes to access data, the user must ascertain which type of storage mechanism is storing the data to determine to the appropriate manner in which to access the data, e.g., the user must determine whether the data is stored relationally in a database or in a file system. In many circumstances it may be cumbersome for the user to determine in which storage mechanism the data is actually stored.
Further, it is desirable to store as many kinds of data as possible in a single storage mechanism for a variety of reasons. Minimizing of the number of different types of storage mechanisms maintained reduces the amount of resources required to maintain the storage mechanisms. Also, storing many kinds of data in a central location, such as a database, promotes ease of use and security, as data is not stored in a plurality of distributed locations.
Consequently, an approach for performing file system operations within a database management system is desirable. The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.